package com.sky.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 返回的参数用当前的EmployeeLoginVO进行封装
 */
@Data //getter,setter,tostring方法
@Builder //这是一个构建器,可以直接将对象属性封装成对象,这个注解是lombok中的库
/**
 * 1.在 EmployeeLoginVO 类上使用 @Builder 注解时，Lombok 会在编译时自动生成一个静态内部类 Builder，
 * 这个类包含了设置 EmployeeLoginVO 实例属性的方法，并且这些方法返回 Builder 类的实例本身，
 * 以支持链式调用。最后，Builder 类还包含一个 build() 方法，用于创建并返回 EmployeeLoginVO 的实例。
 * 2.这里的 .id(), .userName(), .name(), 和 .token() 方法是 Lombok 自动生成的 Builder 类中的方法，
 * 它们用于设置 EmployeeLoginVO 实例的属性。.build() 方法也是自动生成的，用于创建并返回 EmployeeLoginVO 的实例。
 */
@NoArgsConstructor  //无参构造器
@AllArgsConstructor //有参构造器
/**
 * @ApiModel 是 Swagger 库中的一个注解,,就是一个API文档的注释作用
 * @ApiModel 注解的 description 属性用于为 EmployeeLoginVO 类提供一个简短的描述，说明这个类是用于什么目的的。
 */
@ApiModel(description = "员工登录返回的数据格式")
    //也是swagger的用于生成api文档的注解,可以回顾"day01_5.3 常用注解"的笔记
public class EmployeeLoginVO implements Serializable {

    @ApiModelProperty("主键值")  //也是swagger的注解,这个作用在属性上,用来生成对应的Api文档
    private Long id;

    @ApiModelProperty("用户名")
    private String userName;

    @ApiModelProperty("姓名")
    private String name;

    @ApiModelProperty("jwt令牌")
    private String token;

}
